#include <bits/stdc++.h>
using namespace std;

// #define ONLINE_JUDGE

#ifndef ONLINE_JUDGE
#define dbg(x...) { cerr << "\033[32;1m" << #x << " -> "; err(x); }
void err() { cerr << "\033[39;0m" << endl; }
template<typename T, typename... A>
void err(T a, A... x) { cerr << a << ' '; err(x...); }
#else
#define dbg(...)
#endif

typedef long long LL;

const int N = 1005;

set<int> S;
int n;

int b[N], a[N << 1];
pair<int, int> dat[N];

int main(int argc, char const *argv[])
{
	int t;
	scanf("%d", &t);

	for (int kk=0; kk<t; ++kk)
	{
		S.clear();
		scanf("%d", &n);
		bool suc = true;

		for (int i=1; i<=2*n; ++i)
			S.insert(i);
		for (int i=1; i<=n; ++i)
		{
			scanf("%d", &b[i]);
			if (!S.count(b[i]))
			{
				suc = false;
				break;
			}
			a[i * 2 - 1] = b[i];
			S.erase(b[i]);
			dat[i] = make_pair(b[i], i);
		}
		// sort(dat+1, dat+n+1);

		if (!suc)
		{
			puts("-1");
			continue;
		}
		for (int i=1; i<=n; ++i)
		{
			int cval = b[i], cp = i;
			// dbg(i, cvap, cp);
			auto p = S.lower_bound(cval);
			if (p == S.end())
			{
				suc = false;
				break;
			}
			a[cp << 1] = *p;
			S.erase(p);
		}
		if (suc)
		{
			for (int i=1; i<=2*n; ++i)
				printf("%d%c", a[i], i==2*n? '\n':' ');
		} else
			puts("-1");

	}

	return 0;
}